/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package ru.example.netcracker.model;

import ru.example.netcracker.model.entity.Contact;
import ru.example.netcracker.model.entity.Task;
import java.util.Date;
import java.util.List;
import ru.example.netcracker.model.entity.Notification;
import ru.example.netcracker.model.entity.TaskGroup;
import ru.example.netcracker.model.observer.Observer;

/**
 *
 * @author Nikolay
 */
public interface ModelFacade {
    void addObserver(Observer o);
    void deleteObserver(Observer o);
    List<Task> getTasks();
    Task getTask(String id);
    TaskProvider getTaskProvider();
    void setTaskProvider(TaskProvider provider);
    boolean createNotification(String name, String description, Date date);
    boolean createNotification(String name, String description, Date date, List<Contact> contacts);
    boolean updateNotification(String id, String name, String description, Date date, List<Contact> contacts);
    boolean createAlarm(String name, String path, Date date);
    boolean updateAlarm(String id, String name, String path, Date date);
    boolean deleteTask(String id);
    void loadTasks();
    void saveTasks();
}
